package com.zbkj.service.service.splittingAccount;

import com.github.pagehelper.PageInfo;
import com.zbkj.common.model.order.OrderDetail;
import com.zbkj.common.model.splittingAccount.EbCommissionTransaction;
import com.zbkj.common.model.splittingAccount.EbMerchantAccount;
import com.zbkj.common.model.splittingAccount.EbSplitAccount;
import com.zbkj.common.model.splittingAccount.EbWithdrawalApplication;
import com.zbkj.common.request.splittingAccount.SplittingAccountRequest;

import java.util.List;

public interface SplittingAccountService {

    /**
     * 商户账户分页查询
     *
     * @param request 分页请求参数
     * @return 分页结果
     */
    public PageInfo<EbMerchantAccount> getMerchantAccountPageList(SplittingAccountRequest request);

    /**
     * 商户佣金交易记录分页查询
     *
     * @param request 分页请求参数
     * @return 分页结果
     */
    public PageInfo<EbCommissionTransaction> getCommissionTransactionPageList(SplittingAccountRequest request);

    /**
     * 商户分账记录分页查询
     *
     * @param request 分页请求参数
     * @return 分页结果
     */
    public PageInfo<EbSplitAccount> getSplitAccountPageList(SplittingAccountRequest request);

    /**
     * 商户提现申请分页查询
     *
     * @param request 分页请求参数
     * @return 分页结果
     */
    public PageInfo<EbWithdrawalApplication> getWithdrawalApplicationPageList(SplittingAccountRequest request);

    /**
     * 商户提现申请审核
     *
     * @param ebWithdrawalApplication
     * @return
     */
    public EbWithdrawalApplication reviewWithdrawalApplication(EbWithdrawalApplication ebWithdrawalApplication);

    /**
     * 添加分账信息
     * @param ebSplitAccount
     */
    EbSplitAccount addSplitAccount(EbSplitAccount ebSplitAccount);

    /**
     * 查询分账信息
     * @param orderNo
     * @return
     */
    List<EbSplitAccount> getSplitAccount(String orderNo);

    void setEbSplitAccount(EbSplitAccount ebSplitAccount);
}
